There are several possibilities known in the art to recognize events in a data processing unit such as a personal computer (PC), a workstation, or the like. The term `event`, as used herein, shall refer to any kind of occurrence of significance, e.g. a deadlock situation (`transfer does not complete`), a dead system (`no bus traffic after x clocks`), an access to an address A by an agent B, or the like.
Events occurring in the data processing unit are normally recognized by monitoring data communication facilities such as data busses, whereby the term `data bus` shall refer to any kind of data connection as known in the art.
FIG. 1 depicts an event counter 5 for real time counting as a device for event recognition, as known in the art. A comparator 10 receives at least one input signal to be observed on an input bus 20. The comparator 10 monitors input bus 20 for a predefined pattern and provides a count signal on a line 30 to a counter 40, e.g., a logical `1` in case of an observed event (i.e. the predefined pattern has been detected). A pattern on input bus 20 is detected when, for each of the signals that is present on input bus 20, one of the following conditions is met: the input signal is in the logical `0` state, or in the logical `1` state, or is in any logical state (don't care), dependent on its specification. The number of events in the input signal on the input bus 20 is thus count by the counter 40.
The term `counters` as used herein shall apply to devices, such as registers or storage locations, which are used to represent a number of occurrences of an event. Counters are normally used in conjunction with a filter or trigger module for realtime counting of a specific event.
Comparator 10, or another filter or trigger module, determines, according to the predefined pattern, whether or not the occurred event will be counted by the counter 40. A more illustrative example to understand the function of conventional event counter 5 would be a task to measure all red cars traveling from a point A to a point B. Comparator 10 (as filter or trigger task) would select the red cars only and send this information via line 30 to the counter 40, which would count the number of red cars as the filtered or triggered events.
Event counters 5 are often applied for performance measurement purposes. The performance represents the degree to which a system or component accomplishes its designated function within given constraints, such as speed, accuracy or memory usage. The performance can be defined, e.g., by the ratio of the number of specific events to all events, or by the number of events per time unit.
For performance measurements (e.g. `the percentage of red cars`), input bus 20 might further be coupled to an input information counter 50 which counts all events in the input signal on input bus 20, whereas event counter 5 only counts specific events defined by the specific pattern. The counter 40 of event counter 5 and input information counter 50 are coupled to a processing unit 60 which determines the performance on input bus 20, e.g., by dividing the content of counter 40 by the content of the input information counter 50. The input information counter 50 can basically be built in accordance with event counter 5.
Information received from a performance measurement according to FIG. 1 provides only limited information about the actual performance on input bus 20 and might not be sufficient for certain applications.
Another known device for event evaluation is a so-called trace memory 70. Trace memory 70 comprises an event recognizer 80 coupled via a line 85 to a memory 90, for controlling a read/write access of the memory 90 on the input bus 20. Memory 90 stores events recognized by event recognizer 80. Trace memory 70 thus allows selected events to be traced, e.g. for logic analysis. Event recognizer 80 normally allows--dependent on a recognized event--to either move to a successive state, to jump to a predefined state, or to stay in the current state. This, however, may not be sufficient for applications that are more complex.
It is object of the present invention to provide an improved tool for monitoring and/or processing events occurring in a data processing unit.